package util;

import java.io.Serializable;
import java.util.ArrayList;
/**
 * classe abstraite qui represente une personne (soit un �tudiant soit un enseignant)
 * @author Graoudi Nohri & Ochi Ghazi
 *
 */
public abstract class Personne implements Serializable {

	private static final long serialVersionUID = 2561848536944009156L;

	private String nom;
	private  ArrayList<String> surnoms;


	/**
	 * 
	 * @param nom le nom
	 * @param surnoms la liste des surnoms 
	 */
	public Personne(String nom, ArrayList<String> surnoms) {
		this.nom     = nom    ;   
		this.surnoms = surnoms;
	}

	public String getNom()           {return nom    ;}

	public void   setNom(String nom) {this.nom = nom;}




	public   ArrayList<String> getSurnoms()                          {return surnoms;}

	public   void              setSurnoms(ArrayList<String> surnoms) {this.surnoms = surnoms;}


	public boolean equals(Personne p) {
		return p != null               && 
		nom.equals(p.nom)    && this.clefCompare(p);
		
	}
	
	public boolean clefCompare(Personne p){
		for(int i = 0; i< p.surnoms.size(); i++){
			if(!(surnoms.contains(p.surnoms.get(i)))){
				return false;
			}
			}
		return true;
	}
	

	public String toString(){
		String ret ="Nom : " + nom +"\n";
		if(surnoms.size()>0){
			ret += "Surnom : [";
			for(int i = 0; i <surnoms.size();++i){
				ret+= surnoms.get(i)+ (i <surnoms.size()-1?";":"");
			}
			ret+="]";
		}
		else
			ret+="Aucun Surnoms";
		return ret;
	}

}
